﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using FrbaCommerce.Generar_Publicacion;
using FrbaCommerce.Editar_Publicacion;

namespace FrbaCommerce
{
    public partial class frm_editarMisPublicaciones : Form
    {
        private int idUsuario;
        private int idRol;

        public frm_editarMisPublicaciones(int idUsuario, int idRol)
        {
            this.idUsuario = idUsuario;
            this.idRol = idRol;
            InitializeComponent();
        }

        private void frm_misPublicaciones_Load(object sender, EventArgs e)
        {
            btn_editar.Enabled = false;

            BaseDeDatos baseDeDatos = BaseDeDatos.Instance;
            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.CommandText = "LOS_GDDES.SP_TRAER_VISIBILIDADES";
            sqlCommand.CommandType = CommandType.StoredProcedure;
            DataTable dt_visibilidad = baseDeDatos.consulta(sqlCommand);
            cmb_visibPublicacion.DataSource = dt_visibilidad;
            cmb_visibPublicacion.DisplayMember = "DESCRIPCION";
            cmb_visibPublicacion.ValueMember = "ID_VISIBILIDAD";

            sqlCommand.CommandText = "LOS_GDDES.SP_TRAER_TIPO_PUBLICACION";
            sqlCommand.CommandType = CommandType.StoredProcedure;
            DataTable dt_tipoPublicacion = baseDeDatos.consulta(sqlCommand);
            cmb_tipoPublicacion.DataSource = dt_tipoPublicacion;
            cmb_tipoPublicacion.DisplayMember = "TIPO_PUBLICACION";

            sqlCommand.CommandText = "LOS_GDDES.SP_TRAER_ESTADOS";
            sqlCommand.CommandType = CommandType.StoredProcedure;
            DataTable dt_estados = baseDeDatos.consulta(sqlCommand);
            cmb_estadoPublicacion.DataSource = dt_estados;
            cmb_estadoPublicacion.DisplayMember = "DESCRIPCION";
            cmb_estadoPublicacion.ValueMember = "ID_ESTADO";
        }

        private void btn_buscar_Click(object sender, EventArgs e)
        {
            BaseDeDatos baseDeDatos = BaseDeDatos.Instance;
            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.CommandText = "LOS_GDDES.SP_BUSCAR_PUBLICACION_USUARIO_ROL";
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@id_usuario", idUsuario);
            sqlCommand.Parameters.AddWithValue("@id_rol", idRol);
            if (txt_codPublicacion.Text != "")
                sqlCommand.Parameters.AddWithValue("@codigo", Convert.ToDecimal(txt_codPublicacion.Text));
            if (txt_descripPublicacion.Text != "")
                sqlCommand.Parameters.AddWithValue("@descripcion", txt_descripPublicacion.Text);
            if (cmb_visibPublicacion.SelectedText != "")
                sqlCommand.Parameters.AddWithValue("@id_visibilidad", cmb_visibPublicacion.SelectedValue);
            if (cmb_tipoPublicacion.SelectedText != "")
                sqlCommand.Parameters.AddWithValue("@tipo", cmb_tipoPublicacion.SelectedText);
            if (cmb_estadoPublicacion.SelectedText != "")
                sqlCommand.Parameters.AddWithValue("@id_estado", cmb_estadoPublicacion.SelectedValue);
            DataTable dt_publicaciones = baseDeDatos.consulta(sqlCommand);
            dgv_misPublicaciones.DataSource = dt_publicaciones;
        }

        private void dgv_misPublicaciones_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv_misPublicaciones.SelectedRows.Count != 0)
            {
                DataGridViewRow dgvr_miPublicacion = dgv_misPublicaciones.SelectedRows[0];
                DataRow drv_miPublicacion = (dgvr_miPublicacion.DataBoundItem as DataRowView).Row;
                if (drv_miPublicacion.Field<Decimal>("ID_ESTADO") == 1) //ACTIVA
                {
                    if (drv_miPublicacion.Field<string>("TIPO_PUBLICACION") == "Subasta")
                        btn_editar.Enabled = false;
                    else
                        btn_editar.Enabled = true;
                }
                if (drv_miPublicacion.Field<Decimal>("ID_ESTADO") == 2) //BORRADA
                    btn_editar.Enabled = true;
                if (drv_miPublicacion.Field<Decimal>("ID_ESTADO") == 3) //FINALIZADA
                    btn_editar.Enabled = false;
                if (drv_miPublicacion.Field<Decimal>("ID_ESTADO") == 4) //PAUSADA (REVISAR)
                    btn_editar.Enabled = false;
            }
        }

        private void btn_editar_Click(object sender, EventArgs e)
        {
            frm_editarPublicacion frm_editarPublicacion = new frm_editarPublicacion(idUsuario, idRol, dgv_misPublicaciones.CurrentRow);
            frm_editarPublicacion.ShowDialog();
        }

        private void btn_limpiar_Click(object sender, EventArgs e)
        {
            gb_filtrosBusqueda.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Text = String.Empty);
            gb_filtrosBusqueda.Controls.OfType<ComboBox>().ToList().ForEach(comboBox => comboBox.Text = String.Empty);
        }
    }
}
